||由于这种网站是第一层放着只是放着单个链接(不太清楚的图片链接)然后打开获取其中单个稍微清楚的链接,这个链接也是不清楚的图片的链接,从这个网也源代码取大图的链接
ps:最好写一个time.sleep(3)来更改访问时间,防止被拉黑
爬取的总的源代码:
# https://up.enterdesk.com/edpic_source/aa/ec/48/aaec4824403a6bbda9061b3494a693d2.jpg #大图链接
# https://up.enterdesk.com/edpic/aa/ec/48/aaec4824403a6bbda9061b3494a693d2.jpg #小图链接 这里从网页源代码中找到大小图的链接来比较,找到不同处,然后更改
import os #这个是新建文件夹的库
import time #设定访问时间长短
import urllib.request,urllib.error #导入请求网页的库
import re #导入使用正则表达式需要的库
from bs4 import BeautifulSoup #导入BeautifulSoup 这个库是来解析的库
baseurl = "https://www.enterdesk.com/zhuomianbizhi/renwenbizhi/"
head = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.44"
} #防着第一遍就访问不去网页
# print(os.getcwd()) #这一条命令可以显示当前所在目录
#请求网页
requ1 = urllib.request.Request(url=baseurl,headers=head)
#对请求网页进行打开
resp1 = urllib.request.urlopen(requ1)
#对返回的网页源代码实行中文类似的解码
html1 = resp1.read().decode('utf-8')
#对上面的字符类型的网页源代码进行解析,可以是电脑识别
soup1 = BeautifulSoup(html1,'html.parser')
# print(soup) #可以测试是否可以接收到网页源代码
# 这里在当前目录下新建一个名为图片的目录来存储获取到的图片
dir_name = '图片'
if not os.path.exists(dir_name):
os.mkdir(dir_name)
time.sleep(1) #这里设置一个访问时长,防止把网页服务器爬崩
#从网页中获取第一个类似相册的图片的网页源代码
links1 = re.compile(r'<a href="(.*?)"') #正则来匹配第一个图片的
for item in soup1.find_all("div",class_="egeli_pic_li"):
item = str(item)
try: #这里添加异常处理是因为网页图片太多,需要向下滑动才能刷新,后面加载不出来,所以加一个异常处理
link1 = re.findall(links1,item)[0] #从网页源代码中查找每个链接
# print(link)
except(IndexError):
pass
#对获取的第一层链接,进行上述操作获取第二步的小图链接
requ2 = urllib.request.Request(url=link1,headers=head)
resp2 = urllib.request.urlopen(requ2)
html2 = resp2.read().decode('utf-8')
soup2 = BeautifulSoup(html2,'html.parser')
# print(soup2)
links2 = re.compi